<?php
include_once '../conexion.php';
$_SESSION['seccion'] = 'amegreso';
//----------------------------------------------------

class egreso {

    //egcab_id, egcab_clien_id, egcab_fecha, egcab_numero, egcab_tcomp_id, egcab_punto_venta
    public $id;
    public $cliente;
    public $fecha;
    public $numero;
    public $tipoComprobante;
    public $puntoVenta;

    function __construct($id, $cliente, $fecha , $numero, $tipoComprobante, $puntoVenta) {
        $this->id = $id;
        $this->cliente = $cliente;
        $this->fecha = strToInsertInBD($fecha);
        $this->numero = strToInsertInBD($numero);
        $this->tipoComprobante = $tipoComprobante;
        $this->puntoVenta = strToInsertInBD($puntoVenta);
    }

}

?>
<?php //Acciones
$accion = isset($_GET["act"]) ? $_GET["act"] : '';
$REQUEST_ID_ = pg_escape_string(trim(isset($_REQUEST['ref_id']) ? $_REQUEST['ref_id'] : '0'));
$errsdiv = '';

function valida() {
    $errorMsg = array();
    $regex_id = '/^[1-9]{1,8}$/';
    global $REQUEST_ID_;

    if (!validaFecha(trim($_REQUEST["fecha"]))) {
        array_push($errorMsg, 'La fecha no es correcta.');
    }
    if (strlen(trim($_POST["numero"])) > 60) {
        array_push($errorMsg, 'El comentario debe contener menos de 60 caracteres.');
    }
    if (!preg_match($regex_id, $_REQUEST["tipoComprobante"])) {
        array_push($errorMsg, 'Debe seleccionar un tipo de Comprobante.');
    }
    if (strlen(trim($_POST["puntoVenta"])) > 5) {
        array_push($errorMsg, 'El punto de venta debe contener menos de 5 digitos.');
    }
    if(existeRegistro(getConexion(), 'egreso_cab', array('egcab_id'=>$REQUEST_ID_, 'egcab_tcomp_id'=>$_POST["tipoComprobante"], 
        'egcab_punto_venta'=>'\''.trim($_POST["puntoVenta"]).'\'', 'egcab_numero'=>'\''.trim($_POST["numero"]).'\''), 
            array('egcab_id'=>'<>', 'egcab_tcomp_id'=>'=', 'egcab_punto_venta'=>'=', 'egcab_numero'=>'='))){
        array_push($errorMsg, 'El comprobante ya existe.');
    }
    
    return $errorMsg;
}

function guardarReg() {
    global $errsdiv, $REQUEST_ID_;
    $msj = valida();
    divErr($msj);
    if (strlen(trim($errsdiv)) == 0) {
        $objArt = new egreso($_POST["ref_id"], $_POST["cliente"], $_POST["fecha"], $_POST["numero"], $_POST["tipoComprobante"], $_POST["puntoVenta"]);
        if ($objArt->id == 0) {
            insertarReg($objArt);
        } else {
            modificarReg($objArt);
        }
        if ($objArt->id == 0) {
            header("Location: amegreso.php?ref_id=".$REQUEST_ID_);
        }else{
            header("Location: egresos.php");
        }
    }
}

function insertarReg($obj){
    global $REQUEST_ID_;
    $sql = "INSERT INTO egreso_cab(egcab_id, egcab_clien_id, egcab_fecha, egcab_numero, egcab_tcomp_id, egcab_punto_venta) ".
           "VALUES (lastid('egreso_cab','egcab_id'), {$obj->cliente}, to_date('{$obj->fecha}','DD/MM/YYYY'), '{$obj->numero}', {$obj->tipoComprobante}, ".
                   "'{$obj->puntoVenta}') RETURNING egcab_id;";
    $con = new Conexion;
    $result = $con->retornar($sql);
    $REQUEST_ID_ = ($reg = pg_fetch_object($result)) ? $reg->egcab_id : 'null';
    $sql = "INSERT INTO seguridad.log_datos(logd_id, logd_usu_id, logd_tablename, logd_operacion, logd_tableid) ".
            "VALUES (lastid('seguridad.log_datos','logd_id'), ".$_SESSION['usu_id_16856'].", 'egreso_cab', 'INSERT', {$REQUEST_ID_});";
    $con = new Conexion;
    $result = $con->retornar($sql);
}

if(isset($_POST["guardarEg"])){
    guardarReg();
}

function modificarReg($obj){
    $sql = "UPDATE egreso_cab SET ".
            "egcab_fecha=to_date('{$obj->fecha}','DD/MM/YYYY'), egcab_clien_id={$obj->cliente}, egcab_numero='{$obj->numero}', ".
            "egcab_tcomp_id={$obj->tipoComprobante}, egcab_punto_venta='{$obj->puntoVenta}' ".
            "WHERE egcab_id={$obj->id};";
    $sql .= "INSERT INTO seguridad.log_datos(logd_id, logd_usu_id, logd_tablename, logd_operacion, logd_tableid) ".
            "VALUES (lastid('seguridad.log_datos','logd_id'), ".$_SESSION['usu_id_16856'].", 'egreso_cab', 'UPDATE', {$obj->id});";
    $con = new Conexion;
    $result = $con->retornar($sql);
}
?>
<?php
function getSelectedReg() {
    global $REQUEST_ID_;
    $sqlstr = "SELECT egcab_id, egcab_clien_id, to_char(egcab_fecha, 'DD/MM/YYYY') as egcab_fecha, egcab_numero, egcab_tcomp_id, egcab_punto_venta ".
            "FROM egreso_cab " .
            "WHERE (egcab_id = {$REQUEST_ID_}) ";
    $row = '';
    $conn = new Conexion();
    $consulta = $conn->retornar($sqlstr);
    return $consulta;
}

function divErr($mensajes) {
    global $errsdiv;
    if ((count($mensajes) > 0)) {
        if (trim($mensajes[0]) != '') {
            $errsdiv .= '<div class="err_inputs"><ul>';
            foreach ($mensajes as $keyid => $val) {
                $errsdiv .= '<li>' . $val . '</li>';
            }
            $errsdiv .= '</ul></div>';
        }
    }
}

function listarClientes($selected) {
    $sqlstr = "SELECT clien_id, clien_nombre, clien_cuip FROM cliente";
    $sqlstr .= " ORDER BY clien_nombre";
    $row = '';
    $conn = new Conexion();
    $consulta = $conn->retornar($sqlstr);
    $row = '<select name="cliente" style="width: 220px">';
    $sel = $selected == 0 ? 'selected = "selected"' : '';
    $row .= ' <option value="0" ' . $sel . '><span style="color:#516770; font-style:oblique; font-weight:bold">--Ning&uacute;no--</span></option>';
    while ($reg = pg_fetch_object($consulta)) {
        $sel = $selected == $reg->clien_id ? 'selected = "selected"' : '';
        $row .= ' <option value="' . $reg->clien_id . '" ' . $sel . '>'. $reg->clien_nombre . '</option>';
    }
    $row .='</select>';
    echo $row;
}

function listarTipoComprob($selected){
    $usu_rol = isset($_SESSION['usu_rusu_id'])?$_SESSION['usu_rusu_id']:0;
    $sqlstr = "SELECT tcomp_id, tcomp_nombre, tcomp_abreviado, tcomp_is_fiscal FROM tipo_comprobante ";
    $sqlstr .= "ORDER BY tcomp_abreviado";
    $row = '';
    $conn = new Conexion();
    $consulta = $conn->retornar($sqlstr);
    $row = '<select name="tipoComprobante" style="width: 220px">';
    $sel = $selected == 0 ? 'selected = "selected"' : '';
    $row .= ' <option value="0" ' . $sel . '><span style="color:#516770; font-style:oblique; font-weight:bold">--Ning&uacute;no--</span></option>';
    while ($reg = pg_fetch_object($consulta)) {
        if($reg->tcomp_is_fiscal=='t' || $usu_rol != 3){
            $sel = $selected == $reg->tcomp_id ? 'selected = "selected"' : '';
            $row .= ' <option value="' . $reg->tcomp_id . '" ' . $sel . '>'. $reg->tcomp_abreviado . '</option>';
        }
    }
    $row .='</select>';
    echo $row;
}

?>
<?php
$regfecha = isset($_POST["fecha"])?$_POST["fecha"]:'';
$regcliente = isset($_POST["cliente"])?$_POST["cliente"]:'0';
$regnumero = isset($_POST["numero"])?$_POST["numero"]:'';
$regpuntoVenta = isset($_POST["puntoVenta"])?$_POST["puntoVenta"]:'';
$regtipoComprobante = isset($_POST["tipoComprobante"])?$_POST["tipoComprobante"]:'0';
if($REQUEST_ID_ != '0'){
    $queryObj = getSelectedReg();
    if ($regObj = pg_fetch_object($queryObj)) {
        $regfecha = $regObj->egcab_fecha;
        $regcliente = $regObj->egcab_clien_id;
        $regnumero = strToShowValue($regObj->egcab_numero);
        $regpuntoVenta = strToShowValue($regObj->egcab_punto_venta);
        $regtipoComprobante = $regObj->egcab_tcomp_id;
    }
    $queryObj = null;
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Comprobante de Venta</title>
        <script type="text/javascript" src="../utilidades.js"></script>
        <script type="text/javascript" src="amegreso.js"></script>
        <link href="../css/doc.css" rel="stylesheet" type="text/css"/>
    </head>
    <body>
        <?php //control de acceso
        if(!isset ($_SESSION['usu_rusu_id'])){
            echo '<span style="color:red;">No tiene acceso a esta pantalla.</span>'.
                '</body>';
            die;            
        }
        ?>
        <table class="pageTitle" width="100%">
            <tbody>
                <tr>
                    <td class="title_nm">Comprobante de Venta</td><td class="watermark_right"><!--<a href="">Notas de cr&eacute;dito</a> | <a href="">Notas de d&eacute;bito</a> |--> <a href="tipos_comprobantes.php?ref_parent_id=<?php echo $REQUEST_ID_ ?>">Tipos de Comprobante</a></td>
                </tr>
            </tbody>
        </table>
        <hr/>
        <div id="div_data_error"><?php echo $errsdiv ?></div>
        <form name="form_egcab" id="form_egcab" method="post" action="amegreso.php" onsubmit="return guardarRegistro()">
            <input type="hidden" name="ref_id" value="<?php echo $REQUEST_ID_ ?>"/>
            <table>
                <tr>
                    <td>Cliente:</td>
                    <td>
                        <?php
                        listarClientes($regcliente);
                        ?>
                    </td>
                    <?php
                    if($REQUEST_ID_ != '0'){
                    ?>
                    <td rowspan="5">
                        <button type="button" title="Imprimir listado" onclick="window.open('../reports/rpt_egreso_print.php?ref_id=<?php echo $REQUEST_ID_ ?>','_blank','toolbar=no, location=yes, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=800,height=600');"><img src="../images/print.gif" width="28" height="30" alt="Imprimir"/></button>
                        <button type="button" title="Imprimir datos de comprobante" onclick="window.open('../reports/rpt_factura_print.php?ref_id=<?php echo $REQUEST_ID_ ?>','_blank','toolbar=no, location=yes, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=800,height=600');"><img src="../images/factura.gif" width="28" height="30" alt="Imprimir"/></button>
                    </td>
                    <?php
                    }
                    ?>
                </tr>
                <tr>
                    <td>Tipo de Comprobante:</td>
                    <td>
                        <?php
                           listarTipoComprob($regtipoComprobante);
                        ?>
                    </td>
                </tr>
                <tr>
                    <td>Comprobante:</td><td><input type="text" name="puntoVenta" value="<?php echo $regpuntoVenta?>" size="8" maxlength="4" onkeypress="return isNumeric(event);" onblur="completeWith(this, '0', 4, 'left')"/> - <input type="text" name="numero" value="<?php echo $regnumero?>" size="12" maxlength="8" onkeypress="return isNumeric(event);" onkeypress="return isNumeric(event);" onblur="completeWith(this, '0', 8, 'left')"/></td>
                </tr>
                <tr>
                    <td>Fecha:</td>
                    <td>
                        <?php
                        include_once 'complements/date_picker/date_picker.php';
                        getDatePicker('complements/date_picker/', 'fecha');
                        ?>
                        <script type="text/javascript">
                            document.getElementById('fecha').value='<?php echo $regfecha?>';                                                    
                        </script>
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center"><input type="submit" name="guardarEg" value="Guardar"/>
                        <input type="button" name="cancelar" value="Cancelar" onclick="self.location='egresos.php';"/></td>
                </tr>
            </table>
        </form>
        <?php
        if($REQUEST_ID_ != '0'){
        ?>
        <iframe src="egresos_detalles.php?ref_parent_id=<?php echo $REQUEST_ID_ ?>" width="100%" height="400px" frameborder="0">
          <p>Your browser does not support iframes.</p>
        </iframe>
        <?php
        }
        ?>
    </body>
</html>
